The bandwidth requirements of uncompressed digital video streams may exceed the available bandwidth of communication networks such as local area networks (LANs). For example, uncompressed video streams may require between 100 and 240 million bits per second (MBPS) for delivery without distortions or delays at the receiving end. As a result, various methods of compressing digital video streams have been developed to reduce bandwidth requirements to levels acceptable to most networks.
Digital video compression methods typically utilize a collection of algorithms and techniques for replacing the original pixel-related information with more compact mathematical descriptions. Decompression is the reverse process of decoding mathematical descriptions back to pixels for display. Video compression and decompression may be performed using a CODEC (Coder/Decoder or Compressor/Decompressor).
Digital video streams may be transmitted over networks at either a variable bit rate (VBR traffic) or a constant bit rate (CBR traffic). Digital video systems may use buffers to smooth out rate variations in compressed data streams. For example, U.S. Pat. No. 5,485,211 to Kuzma relates to introducing feedback between a video CODEC and a communications channel such that characteristics of the channel are used to drive multiple output buffers. The communications channel can select from the buffer that best matches the communications channel's current conditions.
Buffer control for CBR traffic is reasonably well understood. However, VBR has only recently become widely available and buffer control methods for VBR traffic are still developing. U.S. Pat. No. 5,159,447 to Haskell et al. relates to controlling the number of bits employed to encode each video frame and the transmission bit-rate of the VBR channel as experienced by the encoder.
The difficulty in transporting VBR traffic over communications networks is that VBR traffic is bursty (high peak-to-mean ratios), highly correlated and has strict delay bounds. VBR traffic sources can strain a network's resources and potentially degrade performance, causing excessive packet delays and loss. To manage this problem, traffic shaping mechanisms for shaping traffic before it enters the network have been proposed. Examples of such mechanisms include Traffic "Smoothers" and "Token Buckets."
A token bucket is a device placed at the entry point of a network. Tokens are generated at a fixed rate, .sigma., and flow into a bucket of a fixed size, .beta.. Tokens arriving when the bucket is full are discarded. Each token represents a unit of data. Packets entering a network must acquire tokens equal to its data unit size (e.g. one token for each byte of data in the packet). If there are insufficient tokens, the packet is downgraded in priority, and sent into the network. The number of tokens in the bucket cannot be less than zero and no packets are dropped at the source.
Transport protocols which police incoming traffic deliver low priority packets on a best-effort basis. High priority packets are sent with guarantees on both delivery and delay. Low priority packets, however, can be dropped by the network if the network becomes congested. For video traffic, this can cause severe degradations in quality due to late or missing packets at the receiver.
Traffic smoothers have been proposed to reduce the burstiness of VBR video. A smoother chooses a transmission rate to minimize bit-rate variation, while conforming to a predetermined delay bound. A smoother guarantees that all frames from a video source will meet its transmission delay bound. A smoother may choose a rate which might cause packets to be downgraded in priority. As a result, a higher percentage of low priority packets may enter the network.